61a81820e33a58f520f397b33d1916d20bddd3da,htroot/yacy/user/ysearch.java,ysearch,respond,#httpHeader#serverObjects#serverSwitch#,75

Before Change


                    ((System.currentTimeMillis() - timestamp) / 1000) + " seconds");

            // prepare search statistics
            Long trackerHandle = new Long(System.currentTimeMillis());
            HashMap<String, Object> searchProfile = theQuery.resultProfile(theSearch.getRankingResult().getLocalResourceSize() + theSearch.getRankingResult().getRemoteResourceSize(), System.currentTimeMillis() - timestamp, theSearch.getURLRetrievalTime(), theSearch.getSnippetComputationTime());
            searchProfile.put("querystring", theQuery.queryString);
            searchProfile.put("time", trackerHandle);
            searchProfile.put("host", client);
            searchProfile.put("offset", new Integer(0));
            sb.localSearches.add(searchProfile);
            TreeSet<Long> handles = sb.localSearchTracker.get(client);

After Change


            final boolean globalsearch = (global) && (yacyonline) && (sb.getConfigBool(plasmaSwitchboard.INDEX_RECEIVE_ALLOW, false));
        
            // do the search
            String client = (String) header.get(httpHeader.CONNECTION_PROP_CLIENTIP); // the search client who initiated the search
            TreeSet<String> queryHashes = plasmaCondenser.words2hashes(query[0]);
            plasmaSearchQuery theQuery = new plasmaSearchQuery(
        			querystring,
        			queryHashes,
        			plasmaCondenser.words2hashes(query[1]),
        			ranking,
                    maxDistance,
                    prefermask,
                    contentdomCode,
                    true,
                    itemsPerPage,
                    offset,
                    urlmask,
                    (clustersearch && globalsearch) ? plasmaSearchQuery.SEARCHDOM_CLUSTERALL :
                    ((globalsearch) ? plasmaSearchQuery.SEARCHDOM_GLOBALDHT : plasmaSearchQuery.SEARCHDOM_LOCAL),
                    "",
                    20,
                    constraint,
                    true,
                    client);

            
            // tell all threads to do nothing for a specific time
            sb.intermissionAllThreads(10000);
        
            // filter out words that appear in bluelist
            theQuery.filterOut(plasmaSwitchboard.blueList);
            
            // log
            serverLog.logInfo("LOCAL_SEARCH", "INIT WORD SEARCH: " + theQuery.queryString + ":" + theQuery.queryHashes + " - " + theQuery.neededResults() + " links to be computed, " + theQuery.displayResults() + " lines to be displayed");
            long timestamp = System.currentTimeMillis();

            // create a new search event
            if (plasmaSearchEvent.getEvent(theQuery.id(false)) == null) {
                theQuery.setOffset(0); // in case that this is a new search, always start without a offset 
                offset = 0;
            }
            plasmaSearchEvent theSearch = plasmaSearchEvent.getEvent(theQuery, ranking, sb.wordIndex, (sb.isRobinsonMode()) ? sb.clusterhashes : null, false);
            
            // generate result object
            serverLog.logFine("LOCAL_SEARCH", "SEARCH TIME AFTER ORDERING OF SEARCH RESULTS: " + ((System.currentTimeMillis() - timestamp) / 1000) + " seconds");
            serverLog.logFine("LOCAL_SEARCH", "SEARCH TIME AFTER RESULT PREPARATION: " + ((System.currentTimeMillis() - timestamp) / 1000) + " seconds");
                
            // calc some more cross-reference
            serverLog.logFine("LOCAL_SEARCH", "SEARCH TIME AFTER XREF PREPARATION: " + ((System.currentTimeMillis() - timestamp) / 1000) + " seconds");

            // log
            serverLog.logInfo("LOCAL_SEARCH", "EXIT WORD SEARCH: " + theQuery.queryString + " - " +
                    (theSearch.getRankingResult().getLocalResourceSize() + theSearch.getRankingResult().getRemoteResourceSize()) + " links found, " +
                    ((System.currentTimeMillis() - timestamp) / 1000) + " seconds");

            // prepare search statistics
            theQuery.resultcount = theSearch.getRankingResult().getLocalResourceSize() + theSearch.getRankingResult().getRemoteResourceSize();
            theQuery.searchtime = System.currentTimeMillis() - timestamp;
            theQuery.urlretrievaltime = theSearch.getURLRetrievalTime();
            theQuery.snippetcomputationtime = theSearch.getSnippetComputationTime();
            sb.localSearches.add(theQuery);
            TreeSet<Long> handles = sb.localSearchTracker.get(client);
            if (handles == null) handles = new TreeSet<Long>();